package com.lagou.bigdata.task02;


/*

     编程获取两个指定字符串中的最大相同子串。
     如： s1="asdafghjka", s2="aaasdfg" 他们的最大子串为"asd"
     提示： 将短的那个串进行长度依次递减的子串与较长的串比较。

*/


import java.util.Scanner;

public class Demo02 {

    // 获取相同子串的方法
    public static String getSameSubstring(String shortString, String longString) {
        String result = "";
        for (int i = 0; i <shortString.length(); i++) {
            for (int j = 0; j <=i; j++) {
                String substring = shortString.substring(j, shortString.length()-i+j);
                if (longString.contains(substring)) {
                    if(result.length()<substring.length()) {
                        result=substring;
                    }
                }
            }

        }
        return result;
    }


    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个子串：");
        String s1 = sc.next();

        System.out.println("请输入第二个子串：");
        String s2 = sc.next();

        String sameSubstring = s1.length() > s2.length() ? getSameSubstring(s2, s1) : getSameSubstring(s1, s2);
        System.out.println("最大子串为:" + sameSubstring);


    }
}
